作者:_Cokoice | 来源:互联网 | 2023-10-11 10:07
Python |生成连续元素差异列表
原文:https://www . geesforgeks . org/python-generate-sequence-element-difference-list/
在使用 python 时,我们通常会遇到许多我们需要在日常工作和开发中解决的问题。特别是在开发中,python 的小任务希望只在一行中执行。我们讨论了一些计算列表的方法,该列表由列表中连续不同的元素组成。
方法#1:使用列表理解
天真的方法可以用来执行,但是由于本文讨论了这个特定问题的一个线性解决方案,我们从列表理解作为执行这个任务的方法开始。
# Python3 code to demonstrate
# to generate successive difference list
# using list comprehension
# initializing list
test_list = [1, 4, 5, 3, 6]
# printing original list
print ("The original list is : " + str(test_list))
# using list comprehension
# generate successive difference list
res = [test_list[i + 1] - test_list[i] for i in range(len(test_list)-1)]
# printing result
print ("The computed successive difference list is : " + str(res))
输出:
The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]
方法 2:使用zip()
zip()
也可以用于执行类似的任务,并使用负指数的幂将指数元素与其下一个元素进行 zip()
,从而计算差异。
# Python3 code to demonstrate
# to generate successive difference list
# using zip()
# initializing list
test_list = [1, 4, 5, 3, 6]
# printing original list
print ("The original list is : " + str(test_list))
# using zip()
# generate successive difference list
res = [j - i for i, j in zip(test_list[: -1], test_list[1 :])]
# printing result
print ("The computed successive difference list is : " + str(res))
输出:
The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]
方法三:使用map() + operator.sub
map()
可以配合减法运算符来执行这个特定的任务。这会将元素与其下一个元素进行映射,并执行减法运算。可以传递其他运算符来执行所需的操作。
# Python3 code to demonstrate
# to generate successive difference list
# using map() + operator.sub
import operator
# initializing list
test_list = [1, 4, 5, 3, 6]
# printing original list
print ("The original list is : " + str(test_list))
# using map() + operator.sub
# generate successive difference list
res = list(map(operator.sub, test_list[1:], test_list[:-1]))
# printing result
print ("The computed successive difference list is : " + str(res))
输出:
The original list is : [1, 4, 5, 3, 6]
The computed successive difference list is : [3, 1, -2, 3]